// 引入商品分类数据所在的模块
const productData = require("../../data/json_data")
Component({
  properties: {},
  attached() {
    this.setData({
      categories: productData.categories
    })
  },
  data: {
    categories: [], //商品分类数据
    selectedId: '0' // 选中的类别的id
  },
  methods: {
    _onCategoryItemClick(e) {
      // 当前点击的分类的id
      let id = e.currentTarget.dataset.item.id
      // 是否点击的是同一个选项卡
      if (this.data.selectedId === id) return
      let res = this.data.categories.map((item, index) => {
        if (item.id == id) {
          item.isSelect = true
          // 用户选择新的类别后，通知父组件重新获取新的图书数据
          this.triggerEvent('categoryChangeEvent', {
            // 将当前用户选择的分类标题传给父组件
            selectedCategory: this.data.categories[index].title
          })
        } else {
          item.isSelect = false
        }
        return item
      })
      // 最后更新数据达到更新视图
      this.setData({
        categories: res,
        // 防止多次点击同一个选项卡造成多次判断的性能问题
        selectedId: id
      })
    }
  }
})